package com.qianfeng.smsplatform.strategy.filter.impl;

//
//                            _ooOoo_  
//                           o8888888o  
//                           88" . "88  
//                           (| -_- |)  
//                            O\ = /O  
//                        ____/`---'\____  
//                      .   ' \\| |// `.  
//                       / \\||| : |||// \  
//                     / _||||| -:- |||||- \  
//                       | | \\\ - /// | |  
//                     | \_| ''\---/'' | |  
//                      \ .-\__ `-` ___/-. /  
//                   ___`. .' /--.--\ `. . __  
//                ."" '< `.___\_<|>_/___.' >'"".  
//               | | : `- \`.;`\ _ /`;.`/ - ` : | |  
//                 \ \ `-. \_ __\ /__ _/ .-` / /  
//         ======`-.____`-.___\_____/___.-`____.-'======  
//                            `=---='  
//  
//         .............................................  
//                  佛祖镇楼                  BUG辟易  
//          佛曰:  
//                  写字楼里写字间，写字间里程序员；  
//                  程序人员写程序，又拿程序换酒钱。  
//                  酒醒只在网上坐，酒醉还来网下眠；  
//                  酒醉酒醒日复日，网上网下年复年。  
//                  但愿老死电脑间，不愿鞠躬老板前；  
//                  奔驰宝马贵者趣，公交自行程序员。  
//                  别人笑我忒疯癫，我笑自己命太贱；  
//  


import com.qianfeng.smsplatform.common.model.Standard_Submit;
import com.qianfeng.smsplatform.strategy.cache.BlackLocalCache;
import com.qianfeng.smsplatform.strategy.filter.StrategyFilter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Set;

/**
 * Created by Jackiechan on 2022/2/16/11:08
 *
 * @author Jackiechan
 * @version 1.0
 * @since 1.0
 */
@Component
public class BlackListFilter implements StrategyFilter {

    private BlackLocalCache blackLocalCache;


    @Autowired
    public void setBlackLocalCache(BlackLocalCache blackLocalCache) {
        this.blackLocalCache = blackLocalCache;
    }

    @Override
    public boolean dealSubmit(Standard_Submit standard_submit) {
        System.err.println("黑名单的过滤执行了");
//        if (new Random().nextBoolean()) {
//            System.err.println("有黑名单");
//            return false;
//        }
        //黑名单就是判断当前的手机号在不在一个黑名单的列表中,所以应该有两个数据,一个是当前手机号是什么,一个是黑名单列表是什么
        String mobile = standard_submit.getDestMobile();//手机号
        //获取到黑名单,我们程序中操作都都是数据,数据不保存就没有任何意义,所以这个黑名单的列表一定在某个地方保存,我们只需要按照方式去查询就行
        Set<String> blackList = blackLocalCache.getBlackSet();//通过查询到这个结果,在想用什么格式保存数据的时候,要先考虑数据是否允许重复
        if (blackList.contains(mobile)) {
            //在黑名单中
            System.err.println("当前手机号:" + mobile + "在黑名单中");
            return false;
        }
        return true;
    }
}
